Presto এর Dashboard এবং Alerts কনফিগারেশন সিস্টেমের পারফরম্যান্স মনিটরিং, নিরবচ্ছিন্ন অপারেশন এবং দ্রুত সমস্যা চিহ্নিতকরণে গুরুত্বপূর্ণ ভূমিকা পালন করে। Presto ক্লাস্টারে রিয়েল-টাইম মনিটরিং সক্ষম করার মাধ্যমে, আপনি ক্লাস্টারের সাস্থ্য, কোয়েরি পারফরম্যান্স এবং অন্যান্য গুরুত্বপূর্ণ মেট্রিকস ট্র্যাক করতে পারেন।
Presto তে ড্যাশবোর্ড এবং এলার্ট কনফিগারেশন সাধারণত Prometheus এবং Grafana এর মাধ্যমে সম্পন্ন করা হয়। Prometheus ডেটা সংগ্রহের জন্য এবং Grafana ড্যাশবোর্ড তৈরি এবং এলার্ট কনফিগারেশনের জন্য ব্যবহৃত হয়।
১. Presto Dashboard কনফিগারেশন (Prometheus & Grafana)
Prometheus এবং Grafana কী?
- Prometheus: এটি একটি ওপেন সোর্স মেট্রিক্স সংগ্রহ এবং মনিটরিং সিস্টেম, যা ক্লাস্টারের পারফরম্যান্স ট্র্যাক করতে ব্যবহৃত হয়।
- Grafana: এটি একটি ওপেন সোর্স ড্যাশবোর্ডিং টুল যা প্রোমিথিয়াস থেকে ডেটা নিয়ে গ্রাফ, চিত্র এবং অন্যান্য ভিজ্যুয়ালাইজেশন তৈরী করে।
Presto এর পারফরম্যান্স মনিটরিং করার জন্য আমরা সাধারণত Prometheus ব্যবহার করি ডেটা সংগ্রহের জন্য এবং Grafana ব্যবহার করি সেই ডেটার ভিজ্যুয়াল ড্যাশবোর্ড তৈরি করার জন্য।
Prometheus ইনস্টলেশন এবং কনফিগারেশন
ধাপ ১: Prometheus ইনস্টল করা Prometheus ইনস্টল করতে প্রথমে ডাউনলোড করতে হবে:
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
tar xvf prometheus-2.30.3.linux-amd64.tar.gz
cd prometheus-2.30.3.linux-amd64
ধাপ ২: Prometheus কনফিগারেশন Prometheus-এর prometheus.yml কনফিগারেশন ফাইলে Presto সার্ভারের জন্য একটি মেট্রিক্স সংগ্রহ কনফিগার করতে হবে।
scrape_configs:
- job_name: 'presto'
static_configs:
- targets: ['<presto-server-ip>:8080'] # Presto কো-অর্ডিনেটর বা Worker নোডের IP এবং পোর্ট
ধাপ ৩: Prometheus চালানো Prometheus কনফিগারেশন ফাইল দিয়ে চালু করুন:
./prometheus --config.file=prometheus.yml
এটি Prometheus সার্ভার চালু করবে এবং Presto সার্ভার থেকে মেট্রিক্স সংগ্রহ শুরু করবে।
Grafana ইনস্টলেশন এবং কনফিগারেশন
ধাপ ১: Grafana ইনস্টল করা Grafana ইনস্টল করার জন্য নিম্নলিখিত কমান্ড ব্যবহার করুন:
sudo apt-get install -y software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
sudo apt-get update
sudo apt-get install grafana
ধাপ ২: Grafana সার্ভিস চালু করা Grafana সার্ভিস চালু করুন:
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
ধাপ ৩: Grafana ড্যাশবোর্ড কনফিগারেশন Grafana এ লগ ইন করতে আপনার ব্রাউজারে http://<grafana-ip>:3000 এ যান (ডিফল্ট ইউজারনেম এবং পাসওয়ার্ড admin/admin থাকে)।
- Prometheus Data Source যোগ করা:
- Grafana এ লগ ইন করার পর, "Configuration" > "Data Sources" এ যান এবং Prometheus নির্বাচন করুন।
- URL হিসেবে
http://<prometheus-ip>:9090যোগ করুন।
- Presto ড্যাশবোর্ড তৈরি করা:
- Grafana ড্যাশবোর্ডে নতুন ড্যাশবোর্ড তৈরি করুন এবং Prometheus ডেটা সোর্স থেকে মেট্রিক্স যোগ করুন।
- উদাহরণস্বরূপ,
presto_query_countএবংpresto_cpu_usageএর মতো মেট্রিক্স যোগ করতে পারেন।
- ড্যাশবোর্ডে ভিজ্যুয়ালাইজেশন নির্বাচন করুন:
- বিভিন্ন মেট্রিক্সের জন্য গ্রাফ, বার চার্ট এবং পিভট টেবিল ইত্যাদি ভিজ্যুয়ালাইজেশন তৈরি করুন।
২. Presto Alerts কনফিগারেশন
Presto ক্লাস্টারের স্বাস্থ্য এবং পারফরম্যান্স মনিটর করতে Alerts কনফিগার করা অত্যন্ত গুরুত্বপূর্ণ। Alerts কনফিগার করা হলে, যখন কোনও নির্দিষ্ট থ্রেশহোল্ড অতিক্রম করবে (যেমন উচ্চ CPU ব্যবহার, বা কোয়েরি টাইম আউট), তখন আপনি সিস্টেমে একটি এলার্ট পেতে পারবেন।
Prometheus এ Alerting Rules কনফিগারেশন
alert.rules ফাইল তৈরি করুন: Prometheus এ এলার্ট রুলস কনফিগার করতে
alert.rulesফাইল তৈরি করুন।উদাহরণ:
groups: - name: presto_alerts rules: - alert: HighCPUUsage expr: avg(rate(presto_cpu_usage[1m])) > 0.9 for: 2m labels: severity: critical annotations: summary: "High CPU usage on Presto Worker" - alert: HighQueryLatency expr: avg(presto_query_duration_seconds) > 5 for: 5m labels: severity: warning annotations: summary: "High query latency on Presto"এই উদাহরণে:
- HighCPUUsage এলার্ট হবে যদি Presto Worker এর CPU ব্যবহার 90% এর বেশি হয়।
- HighQueryLatency এলার্ট হবে যদি Presto কোয়েরি এক্সিকিউশন লেটেন্সি 5 সেকেন্ডের বেশি হয়।
Prometheus Alertmanager কনফিগারেশন: Alertmanager একটি কম্পোনেন্ট যা এলার্টগুলি হ্যান্ডল করে এবং সেগুলি ব্যবহারকারীর কাছে পাঠায় (যেমন ইমেইল, Slack, ইত্যাদি)।
alertmanager.yml কনফিগারেশনে এলার্ট সম্বন্ধে কনফিগারেশন যোগ করুন:
global: resolve_timeout: 5m route: group_by: ['alertname'] group_wait: 10s group_interval: 5m repeat_interval: 3h receiver: 'slack-notifications' receivers: - name: 'slack-notifications' slack_configs: - channel: '#presto-alerts' send_resolved: true webhook_url: 'https://hooks.slack.com/services/your/slack/webhook'- Alerts ট্রিগার হওয়া:
যদি কোনও এলার্ট শর্ত পূর্ণ হয়, Alertmanager সেটি যথাযথ চ্যানেলে (যেমন Slack) পাঠিয়ে দেবে।
৩. Grafana Alerts কনফিগারেশন
Grafana তে এলার্ট কনফিগার করাও খুবই সহজ। আপনাকে প্রথমে একটি ড্যাশবোর্ডে ভিজ্যুয়ালাইজেশন সেটআপ করতে হবে, তারপর এলার্ট কনফিগারেশন যোগ করতে হবে।
- Grafana ড্যাশবোর্ডে এলার্ট তৈরি করা:
- একটি প্যানেল নির্বাচন করুন যেখানে আপনি এলার্ট কনফিগার করতে চান।
- প্যানেলের "Alert" ট্যাবে যান এবং "Create Alert" নির্বাচন করুন।
- Condition সেট করুন (যেমন: CPU ব্যবহার 90% এর বেশি হলে এলার্ট পাঠানো হবে)।
- Notification Channel কনফিগারেশন:
- Notification channels নির্বাচন করুন এবং Slack, Email, PagerDuty ইত্যাদির মাধ্যমে এলার্ট পাঠানোর জন্য সেটিংস কনফিগার করুন।
সারাংশ
Presto Dashboard এবং Alerts কনফিগারেশন Presto ক্লাস্টারের সঠিক মনিটরিং এবং পারফরম্যান্স ব্যবস্থাপনায় অত্যন্ত গুরুত্বপূর্ণ। Prometheus এবং Grafana ব্যবহার করে আপনি Presto সার্ভারের স্বাস্থ্য এবং পারফরম্যান্স রিয়েল-টাইম ট্র্যাক করতে পারবেন, এবং Alerts কনফিগার করার মাধ্যমে আপনি ক্লাস্টারে সমস্যা চিহ্নিত করতে এবং দ্রুত সমাধান করতে সক্ষম হবেন।
Read more